﻿/*
    Nova Code - A script language, parser and recompiler for implementing emulated code instructions
    Copyright (C) 2012  Bryan Perris

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Nova.Parsing
{
    public enum OperatorType
    {
        None, //

        LogicalOr,  // ||
        LogicalAnd, // &&
        BitwiseOr,  // |
        BitwiseXor, // ^
        BitwiseAnd, // &

        CompareEquals, // ==
        CompareNotEquals, // !=
        CompareLessThan,  // <
        CompareLessThanOrEqual, // <=
        CompareGreaterThan, // >
        CompareGreaterThanOrEqual, // >=

        ShiftLeft, // <<
        ShiftLeftSigned, // <<<
        ShiftRight, // >>
        ShiftRightSigned, // >>>

        Add,  // +
        Subtract, // - or negate
        Multiply, // *
        Divide,   // /
        Modulus,  // %

        BoolNot, // !
        BitwiseNot, // ~
        UnarySubtract, // --
        UnaryAdd, //  ++

        Equals // =
    }
}
